home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 21
/
Cream of the Crop 21 (Terry Blount) (October 1996).iso
/
utility
/
ath_hwr1.zip
/
MRIP130.ZIP
/
UTILS
/
LIBS.TXT
< prev
next >
Wrap
Text File
|
1996-03-26
|
18KB
|
517 lines
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
▒ ▒ ▒▒ ▒ ▒▒ ▒▒▒ ▒ ▒ ▒▒ ▒▒▒ ▒ ▒▒ ▒ ▒▒ ▒ ▒▒ ▒ ▒▒ ▒▒ ▒ ▒
▓▓▓▓ ▓ ▓▓ ▓ ▓▓▓▓ ▓▓▓ ▓ ▓▓ ▓ ▓▓ ▓ ▓▓ ▓▓ ▓▓▓ ▓▓ ▓ ▓▓▓ ▓▓ ▓ ▓▓▓▓▓ ▓ ▓▓▓ ▓▓ ▓ ▓ ▓ ▓
████ █ ██ █ ████ █ █ █ ██ █ ██ █ ███ █ ███ █ ██ ███ ██ █ █████ █ ███ ██ █ █ █ █
░ ░░░░ ░░░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░░░ ░ ░░ ░░░ ░ ░ ░ ░ ░░░ ░░░░ ░ ░ ░
▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓
█ █ █ ███ ██ ██ ████ █ █ ████ ███ █ █ █ ████ ███ █ ███ █ █ █ █
≡≡≡≡▒≡▒≡≡▒≡▒▒▒≡≡▒▒≡▒▒≡▒▒▒▒≡▒≡≡▒≡▒▒▒▒≡≡▒▒▒≡▒≡≡▒≡▒≡≡≡▒▒▒▒≡▒▒▒≡≡≡▒≡▒▒▒≡▒≡≡▒≡▒≡≡≡▒≡
====▒=▒▒▒▒=▒====▒=▒=▒=▒==▒=▒==▒=▒===▒=▒===▒==▒=▒===▒==▒=▒=====▒=▒===▒▒▒▒=▒===▒=
----▒-▒--▒-▒▒---▒-▒-▒-▒--▒-▒--▒-▒---▒-▒▒--▒-▒--▒▒▒-▒--▒-▒-----▒-▒▒--▒--▒-▒-▒-▒-
-▒▒▒▒-▒--▒-▒▒▒--▒---▒-▒▒▒▒-▒▒▒--▒▒▒▒--▒▒▒-▒▒▒▒-▒▒▒-▒--▒-▒--▒▒▒▒-▒▒▒--▒▒--▒▒-▒▒-
···············································································
Library Structures
Figured out by ·─═■│Æ∩■═─· @ T(/\)T
Revision 1.2
Tuesday, March 26, 1996
Email: baccan@isanet.it
This document has been written only because there isn't any about these
structures... and writing down things helps remembering them!!
Use these informations in any way you want, e.g. make your own ripper,
like I have done (MultiRipper 1.30 already extract these!)
Libraries are found on EXE files ,tipically on demos.
These files are made of several files linked together to form a single EXE.
The main program searches every part needed inside itself using an index,
made at least with names and lengths of every single file that forms the
main EXE.
Sometimes library are not linked to the main EXE but are separate huge
data files, actually containing all necessary files. In demos this is
quite unused, I found only few ones using external libs, and they're almost
older versions of the EXE type libs. External libs are mostly found on games
like DOOM and DARK FORCES (ever heard of *.WAD files???)
Well, not surprisingly, also these external libs contain an index.
The structure of this index, the Lib structure index, can also be used to
rip off the single files.
Unluckily, not all structures all identical, but there are few programmers
that make standard libraries to reduce the hassle of linking demoparts
together , so they're quite easy to decode...
Lib Structures described in this document: (11)
1) Future Crew Lib
2) Realtech Lib (EXE)
2a) Realtech Lib (DAT)
3) Psychic Link FLIB
4) ElectroMotive Force LIB
5) The Coexistence XLink 2.02
6) The Coexistence XLink 1.0
7) Pelusa Resource Compiler 0.1ß
8) ACME Virtual File System 1.0ß
9) LucasArts GOB files
10) iD Software WAD files
11) Cascada Resource file
*■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■*
┌─· ┌───────────────┐ ·─┐
╘══[┤Future Crew Lib├]══╛
└───────────────┘
*■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■*
("Unreal" , "Panic" , "FishTro" , "The Party'92" tested)
Last 4 bytes in Future crew's (old) demos are an absolute offset;
if seeking to this offset there is "└/╚ " (C02FC800) we have a Future crew
library structure... and exactly:
---------------------------------------
0: Lib Header: (dWord) Magic C02FC800
4: # of records (dWord)
8: start of lib (dWord)
{ Record structure:
Filename: 12 Bytes
Filler : 4 Bytes
Start off dWord (absolute offset)
Lenght dWord
} * # of records
start of header (dWord) , absolute offset in file
EOF
*■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■*
┌─· ┌───────────────────────────┐ ·─┐
╘══[┤Realtech Lib (in EXE files)├]══╛
└───────────────────────────┘
*■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■*
("DX Project" , "Aquaphobia" and "Countdown" tested )
Last 4 bytes in RealTech's Demos are a LIB dimension; seeking backwards
with this value will find "REALTECH95" (and now "REALTECH96" maybe...)
------------------
00h: Lib Magic "REALTECH95"
0Ah: "=" 03Dh (unknown)
0Bh: # of Records (Word)
0Dh: structure lenght (dWord) (from 00h to start of 1st file)
{ Record structure:
Filename: 12 Bytes
filler: 1 byte
Lenght: dWord
} * # of Records
Start of file pointed by record #1
....
Start of last file
last4bytes (lib off)
EOF
*■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■*
┌─· ┌───────────────────────────┐ ·─┐
╘══[┤Realtech Lib (in DAT files)├]══╛
└───────────────────────────┘
*■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■*
("Megamix" and "Dimension" tested)
The structure is the same but the file starts with "REALTECH94", so it's a
kinda older version of the EXE type (REALTECH95)
Please refer to the EXE type structure, assuming that lib magic is found
at offset 0 of file.
*■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■*
┌─· ┌─────────────────┐ ·─┐
╘══[┤Psychic Link FLIB├]══╛
└─────────────────┘
*■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■*
("ACT1" and "Juice" tested)
Last 8 bytes in Psychic Link's Demos are a dWord + "FLIB"
This dWord is the # of Records , and every rec is 20h bytes long, so lib
start is (nRec*32)+8 bytes from EOF
{ Record structure:
Filename: 12 Bytes
filler: 4 bytes
Start off dWord (absolute offset)
Lenght dWord
Unknown dWord
Unknown dWord
} * # of Records
# of Records
Lib Magic "FLIB"
EOF
*■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■*
┌─· ┌───────────────────────┐ ·─┐
╘══[┤ElectroMotive Force LIB├]══╛
└───────────────────────┘
*■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■*
("Verses" , "ASM95 InvTro" and "Caero" tested)
Last 12 bytes in EMF demos are 2 dWords + "EMF!"
The 1st dWord is the # of Records
The 2nd dWord is Abs offset of start of lib
{ Record structure:
Filename: 12 Bytes
filler: 4 bytes ┌
Start off dWord (absolute offset)────────┤not very accurate!!
Lenght dWord │sometimes is 1 byte
Filler dWord │after realstart !!
Unknown dWord (Start off duplicate?) │(at least in Verses)
} * # of Records └
# of Records
start of Lib abs Offset
Lib Magic "EMF!"
EOF
*■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■*
┌─· ┌──────────────────────────┐ ·─┐
╘══[┤The Coexistence XLink 2.02├]══╛
└──────────────────────────┘
*■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■▀■▄■*
("TC-BABES" (T.C.),"Groove" (Fudge),"Hurtless" (TFL-TDV),"BLUES" (sYmptom),
"The Party 95" and many more tested)
First of all, this lib is NOT standard, but having thoughly tested it I can
surely admit it's the best available! (... actually it's the ONLY one
available because other Lib linkers have never been released!)
XLC 2.02 adds a standard loader of 2392 Bytes, already pklited+optimized
This loader can be unpacked without problems, so we cannot use fixed offsets.
If exelenght varies from 2300 to 2800 (original=2392; max unpacked=2750)
is worth checking...
Overlay starts with "XLé " (0x584C0282 0x00000000)
this is the header of lib (off 0)
Then a word indicates the # of records (nrec)
another word is the # of exes to be exec